package com.oros.db;

import java.util.ArrayList;
import java.util.List;

public interface VaadEngine extends java.io.Serializable {
    public boolean vdIsTimeStampSupported();
    public Object vdGetTimeStamp(Object entity);
    public Object vdGetFieldValue(Object entity,String fieldName,int fieldNo);
    public void vdSetFieldValue(Object entity,String fieldName,int fieldNo,Object value) throws Exception;
    public long vvdGetPrimaryId(Object entity,String idColumnName,int idColumnNr);
    public void FinalTransactionCommit(AETransactionData transdata) throws Exception;
    public void FinalTransactionRollback(AETransactionData transdata) throws Exception;
    public void InsertUpdateRow(String tblname,String tblname_base,AERawItem item,AETransactionData transdata,boolean finalCommit) throws Exception;
    public void vDeleteRowById(String tblname,String tblname_base,long keyId,AETransactionData transdata,boolean finalCommit,String primaryKey) throws Exception;
    public List<Object> SelectRowsGeneral(String tblname,String tblname_base,int AppEngineRowLimit,
			   int AppEngineRowOffset,ArrayList<AEFilter> aeFilter,
			   ArrayList<AESort> aeSort) throws Exception;
    public List<Object> SelectRows(String tblname,String tblname_base,int AppEngineRowLimit,
			   int AppEngineRowOffset,ArrayList<AEFilter> aeFilter,
			   ArrayList<AESort> aeSort) throws Exception;
    public void allocateNewId(AERawItem item,String tableName) throws Exception;
    public boolean isNewItemHasDummyId();
    public boolean isCommitNeededRefresh();
    public boolean isBaseTableSeparationSupported();
    public boolean isAEFilterAndSorterSupported();
}
